home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / taropyon / splib / splib.lzh / PRG / LHX / HCLIB.C < prev    next >
C/C++ Source or Header  |  1992-12-08  |  1KB  |  84 lines

  1. #include    "lh386.h"
  2.  
  3. #include    <stdio.h>
  4. #include    <stdlib.h>
  5. #include    <string.h>
  6. #include    <ctype.h>
  7. #include    <msdos.cf>
  8. #include    <status.cf>
  9. #include    "lh.h"
  10. #include    "typedef.h"
  11. #include    "direct.h"
  12.  
  13. #ifdef    __HIGHC__
  14. #    pragma    On(Align_labels);
  15. #endif
  16.  
  17. void       *memmove(void *dest, void *src, size_t size)
  18. {
  19.     if ((int) dest < (int) src)
  20.         memcpy(dest, src, size);
  21.     else
  22.         _rmemcpy(dest, src, size);
  23.     return dest;
  24. }
  25.  
  26. #if    0
  27. int         getch(void)
  28. {
  29.     Registers.AX.LH.H = 0x8;
  30.     calldos();
  31.  
  32.     return Registers.AX.LH.L;
  33. }
  34. #endif
  35.  
  36. void       *stpcpy(void *a, void *b)
  37. {
  38.     strcpy(a, b);
  39.     return (void *) ((long) a + (long) _find_char(a, _MAXSTRING, 0));
  40. }
  41.  
  42. long        filesize(FILE * fp)
  43. {
  44.     long        now, size;
  45.  
  46.     now = ftell(fp);
  47.     fseek(fp, 0L, SEEK_END);
  48.     size = ftell(fp);
  49.     fseek(fp, now, SEEK_SET);
  50.  
  51.     return size;
  52. }
  53.  
  54. char       *getcwd(char *buf, int max)
  55. {
  56.     char        namebuf[256];
  57.     char       *name = namebuf;
  58.  
  59.     Registers.AX.R = 0x4700;
  60.     Registers.DX.R = 0x0000;
  61.     Registers.SI.R = (int) name + 3;
  62.     Registers.DS.R = getds();
  63.     calldos();
  64.     if ((Registers.Flags & 0x0001) != 0)
  65.         *(name + 3) = '\0';
  66.  
  67.     Registers.AX.R = 0x1900;
  68.     calldos();
  69.  
  70.     *(name++) = 'A' + (Registers.AX.R & 0xFF);
  71.     *(name++) = ':';
  72.     *(name++) = '\\';
  73.     if (*name != '\0')
  74.         strcat(name, "\\");
  75.  
  76.     if (buf == NULL)
  77.         buf = e_malloc(max + 1);
  78.  
  79.     strncpy(buf, name, max);
  80.  
  81.     return buf;
  82. }
  83.  
  84.